The following description is provided to assist the understanding of the reader. None of the information provided or references cited is admitted to be prior art.
Virtual computing systems are widely used in a variety of applications. Virtual computing systems include one or more host machines running one or more virtual machines concurrently. The one or more virtual machines utilize the hardware resources of the underlying one or more host machines. Each virtual machine may be configured to run an instance of an operating system. Modern virtual computing systems allow several operating systems and several software applications to be safely run at the same time on the virtual machines of a single host machine, thereby increasing resource utilization and performance efficiency. Each virtual machine is managed by a hypervisor or virtual machine monitor. Typically, performance and reliability for a virtual computing system compete, with high performance systems having lower reliability and high reliability systems having low performance trade-offs. Moreover, high performance, low latency storage solutions, such as NVMe or PMEM, can be costly solutions that remain with a host machine. Thus, usage of such host machines for a virtual machine may necessitate that the virtual machine user remain on the particular host machine to use the high performance storage solution or degrade performance by remotely accessing such storage devices. Presented herein is a method and system for migrating virtual machines and storage spaces to utilize high performance storage devices while permitting use of the data by the virtual machine and a tunable durability for backing up the data of the local storage space to a reliable and resilient storage device.